﻿using System;
using System.IO;

namespace SharpSqlAnalyzer
{
	// Token: 0x02000058 RID: 88
	internal class TParserAccessSql : TCustomParser
	{
		// Token: 0x06000181 RID: 385 RVA: 0x0002BD47 File Offset: 0x00029F47
		static TParserAccessSql()
		{
			TParserAccessSql.inittable();
		}

		// Token: 0x06000182 RID: 386 RVA: 0x0002BD58 File Offset: 0x00029F58
		internal TParserAccessSql(TSourceTokenList sourcetokens)
		{
			this.dbvendor = EDbVendor.dbvaccess;
			this.sourcetokenlist = sourcetokens;
		}

		// Token: 0x06000183 RID: 387 RVA: 0x0002BD70 File Offset: 0x00029F70
		internal static void inittable()
		{
			int num = 1;
			int num2 = 1;
			int num3 = 1;
			int num4 = 1;
			int num5 = 1;
			int num6 = 1;
			int num7 = 0;
			int num8 = 0;
			int num9 = 0;
			int num10 = 0;
			int num11 = 0;
			bool flag = false;
			bool flag2 = false;
			bool flag3 = false;
			bool flag4 = false;
			bool flag5 = false;
			bool flag6 = false;
			bool flag7 = false;
			bool flag8 = false;
			bool flag9 = false;
			bool flag10 = false;
			bool flag11 = false;
			StreamReader streamReader = new StreamReader("typeof(TParserAccessSql).getResourceAsStream(table_file)");
			try
			{
				string text;
				while ((text = streamReader.ReadLine()) != null)
				{
					if (text.Trim().StartsWith("yynacts =", StringComparison.Ordinal))
					{
						TParserAccessSql.yynacts = int.Parse(text.Split(new char[]
						{
							'=',
							';'
						})[1].Trim());
						TParserAccessSql.yya_sym = new int[TParserAccessSql.yynacts + 1];
						TParserAccessSql.yya_act = new int[TParserAccessSql.yynacts + 1];
					}
					else if (text.Trim().StartsWith("yyngotos =", StringComparison.Ordinal))
					{
						TParserAccessSql.yyngotos = int.Parse(text.Split(new char[]
						{
							'=',
							';'
						})[1].Trim());
						TParserAccessSql.yyg_sym = new int[TParserAccessSql.yyngotos + 1];
						TParserAccessSql.yyg_act = new int[TParserAccessSql.yyngotos + 1];
					}
					else if (text.Trim().StartsWith("yynrules =", StringComparison.Ordinal))
					{
						TParserAccessSql.yynrules = int.Parse(text.Split(new char[]
						{
							'=',
							';'
						})[1].Trim());
						TParserAccessSql.yyr_len = new int[TParserAccessSql.yynrules + 1];
						TParserAccessSql.yyr_sym = new int[TParserAccessSql.yynrules + 1];
					}
					else if (text.Trim().StartsWith("yynstates =", StringComparison.Ordinal))
					{
						TParserAccessSql.yynstates = int.Parse(text.Split(new char[]
						{
							'=',
							';'
						})[1].Trim());
						TParserAccessSql.yyd = new int[TParserAccessSql.yynstates];
						TParserAccessSql.yyal = new int[TParserAccessSql.yynstates];
						TParserAccessSql.yyah = new int[TParserAccessSql.yynstates];
						TParserAccessSql.yygl = new int[TParserAccessSql.yynstates];
						TParserAccessSql.yygh = new int[TParserAccessSql.yynstates];
					}
					else if (text.Trim().StartsWith(";", StringComparison.Ordinal))
					{
						if (flag)
						{
							flag = false;
							if (TParserAccessSql.yynacts + 1 != num)
							{
								Console.WriteLine("required:" + TParserAccessSql.yynacts.ToString() + " actually:" + (num - 1).ToString());
							}
						}
						else if (flag2)
						{
							flag2 = false;
							if (TParserAccessSql.yynacts + 1 != num2)
							{
								Console.WriteLine("required:" + TParserAccessSql.yynacts.ToString() + " actually:" + (num2 - 1).ToString());
							}
						}
						else if (flag3)
						{
							flag3 = false;
							if (TParserAccessSql.yyngotos + 1 != num3)
							{
								Console.WriteLine("required:" + TParserAccessSql.yyngotos.ToString() + " actually:" + (num3 - 1).ToString());
							}
						}
						else if (flag4)
						{
							flag4 = false;
							if (TParserAccessSql.yyngotos + 1 != num4)
							{
								Console.WriteLine("required:" + TParserAccessSql.yyngotos.ToString() + " actually:" + (num4 - 1).ToString());
							}
						}
						else if (flag5)
						{
							flag5 = false;
							if (TParserAccessSql.yynrules + 1 != num5)
							{
								Console.WriteLine("required:" + TParserAccessSql.yynrules.ToString() + " actually:" + (num5 - 1).ToString());
							}
						}
						else if (flag6)
						{
							flag6 = false;
							if (TParserAccessSql.yynrules + 1 != num6)
							{
								Console.WriteLine("required:" + TParserAccessSql.yynrules.ToString() + " actually:" + (num6 - 1).ToString());
							}
						}
						else if (flag7)
						{
							flag7 = false;
							if (TParserAccessSql.yynstates != num7)
							{
								Console.WriteLine("required:" + TParserAccessSql.yynstates.ToString() + " actually:" + num7.ToString());
							}
						}
						else if (flag8)
						{
							flag8 = false;
							if (TParserAccessSql.yynstates != num8)
							{
								Console.WriteLine("required:" + TParserAccessSql.yynstates.ToString() + " actually:" + num8.ToString());
							}
						}
						else if (flag9)
						{
							flag9 = false;
							if (TParserAccessSql.yynstates != num9)
							{
								Console.WriteLine("required:" + TParserAccessSql.yynstates.ToString() + " actually:" + num9.ToString());
							}
						}
						else if (flag10)
						{
							flag10 = false;
							if (TParserAccessSql.yynstates != num10)
							{
								Console.WriteLine("required:" + TParserAccessSql.yynstates.ToString() + " actually:" + num10.ToString());
							}
						}
						else if (flag11)
						{
							flag11 = false;
							if (TParserAccessSql.yynstates != num11)
							{
								Console.WriteLine("required:" + TParserAccessSql.yynstates.ToString() + " actually:" + num11.ToString());
							}
						}
					}
					else if (text.Trim().StartsWith("yya_sym =", StringComparison.Ordinal))
					{
						flag = true;
					}
					else if (text.Trim().StartsWith("yya_act =", StringComparison.Ordinal))
					{
						flag2 = true;
					}
					else if (text.Trim().StartsWith("yyg_sym =", StringComparison.Ordinal))
					{
						flag3 = true;
					}
					else if (text.Trim().StartsWith("yyg_act =", StringComparison.Ordinal))
					{
						flag4 = true;
					}
					else if (text.Trim().StartsWith("yyr_sym =", StringComparison.Ordinal))
					{
						flag5 = true;
					}
					else if (text.Trim().StartsWith("yyr_len =", StringComparison.Ordinal))
					{
						flag6 = true;
					}
					else if (text.Trim().StartsWith("yyd =", StringComparison.Ordinal))
					{
						flag7 = true;
					}
					else if (text.Trim().StartsWith("yyal =", StringComparison.Ordinal))
					{
						flag8 = true;
					}
					else if (text.Trim().StartsWith("yyah =", StringComparison.Ordinal))
					{
						flag9 = true;
					}
					else if (text.Trim().StartsWith("yygl =", StringComparison.Ordinal))
					{
						flag10 = true;
					}
					else if (text.Trim().StartsWith("yygh =", StringComparison.Ordinal))
					{
						flag11 = true;
					}
					else if (text.Trim().Length != 0)
					{
						if (flag)
						{
							string[] array = text.Split(new char[]
							{
								','
							});
							for (int i = 0; i < array.Length; i++)
							{
								TParserAccessSql.yya_sym[num++] = int.Parse(array[i].Trim());
							}
						}
						else if (flag2)
						{
							string[] array2 = text.Split(new char[]
							{
								','
							});
							for (int j = 0; j < array2.Length; j++)
							{
								TParserAccessSql.yya_act[num2++] = int.Parse(array2[j].Trim());
							}
						}
						else if (flag3)
						{
							string[] array3 = text.Split(new char[]
							{
								','
							});
							for (int k = 0; k < array3.Length; k++)
							{
								TParserAccessSql.yyg_sym[num3++] = int.Parse(array3[k].Trim());
							}
						}
						else if (flag4)
						{
							string[] array4 = text.Split(new char[]
							{
								','
							});
							for (int l = 0; l < array4.Length; l++)
							{
								TParserAccessSql.yyg_act[num4++] = int.Parse(array4[l].Trim());
							}
						}
						else if (flag5)
						{
							string[] array5 = text.Split(new char[]
							{
								','
							});
							for (int m = 0; m < array5.Length; m++)
							{
								TParserAccessSql.yyr_sym[num5++] = int.Parse(array5[m].Trim());
							}
						}
						else if (flag6)
						{
							string[] array6 = text.Split(new char[]
							{
								','
							});
							for (int n = 0; n < array6.Length; n++)
							{
								TParserAccessSql.yyr_len[num6++] = int.Parse(array6[n].Trim());
							}
						}
						else if (flag7)
						{
							string[] array7 = text.Split(new char[]
							{
								','
							});
							for (int num12 = 0; num12 < array7.Length; num12++)
							{
								TParserAccessSql.yyd[num7++] = int.Parse(array7[num12].Trim());
							}
						}
						else if (flag8)
						{
							string[] array8 = text.Split(new char[]
							{
								','
							});
							for (int num13 = 0; num13 < array8.Length; num13++)
							{
								TParserAccessSql.yyal[num8++] = int.Parse(array8[num13].Trim());
							}
						}
						else if (flag9)
						{
							string[] array9 = text.Split(new char[]
							{
								','
							});
							for (int num14 = 0; num14 < array9.Length; num14++)
							{
								TParserAccessSql.yyah[num9++] = int.Parse(array9[num14].Trim());
							}
						}
						else if (flag10)
						{
							string[] array10 = text.Split(new char[]
							{
								','
							});
							for (int num15 = 0; num15 < array10.Length; num15++)
							{
								TParserAccessSql.yygl[num10++] = int.Parse(array10[num15].Trim());
							}
						}
						else if (flag11)
						{
							string[] array11 = text.Split(new char[]
							{
								','
							});
							for (int num16 = 0; num16 < array11.Length; num16++)
							{
								TParserAccessSql.yygh[num11++] = int.Parse(array11[num16].Trim());
							}
						}
					}
				}
			}
			catch (IOException ex)
			{
				Console.WriteLine(ex.ToString());
			}
		}

		// Token: 0x06000184 RID: 388 RVA: 0x0002C6F8 File Offset: 0x0002A8F8
		public override int yyparse()
		{
			int num = 0;
			int[] array = new int[this.yymaxdepth + 1];
			TDatabaseYYSType yyval = null;
			this.curtokenpos = 0;
			int num2 = this.dobefore_yyparse();
			if (num2 == -1)
			{
				return 0;
			}
			int num3 = 0;
			int num4 = 0;
			int num5 = -1;
			int num6 = 0;
			this.yysp = 0;
			bool flag = false;
			bool flag2 = false;
			bool flag3 = false;
			bool flag4 = false;
			int num7 = num4;
			int yysp = this.yysp;
			this.isbeginofbatch = true;
			for (;;)
			{
				this.yysp++;
				if (this.yysp > this.yymaxdepth)
				{
					break;
				}
				array[this.yysp] = num4;
				this.yyv[this.yysp] = this.yyval;
				int num8;
				for (;;)
				{
					if (TParserAccessSql.yyd[num4] == 0 && num5 == -1)
					{
						do
						{
							num5 = this.yylexwrap(true);
							if (num5 < 0)
							{
								num5 = 0;
							}
						}
						while (num5 == 258 || num5 == 257 || num5 == 259 || num5 == 260 || num5 == 273);
						if (num5 == 0)
						{
							if (this.sourcetokenlist.get(this.sourcetokenlist.size() - 1).tokencode != 0)
							{
								this.yylval.yyTSourceToken = new TSourceToken(" ");
								this.yylval.yyTSourceToken.container = this.sourcetokenlist;
								this.yylval.yyTSourceToken.tokencode = 0;
								this.yylval.yyTSourceToken.posinlist = this.sourcetokenlist.size() - 1;
								this.curtokenpos = this.sourcetokenlist.size();
							}
							else
							{
								this.yylval.yyTSourceToken = this.sourcetokenlist.get(this.sourcetokenlist.size() - 1);
							}
						}
						this.currentsourcetoken = this.yylval.yyTSourceToken;
					}
					if (!flag)
					{
						num = TParserAccessSql.yyd[num4];
						if (num != 0)
						{
							goto Block_14;
						}
						bool flag5 = this.yyact(num4, num5, this.retvalue);
						if (flag5)
						{
							num = this.retvalue[0];
						}
						if (flag5)
						{
							goto IL_39B;
						}
						num8 = this.aopAbort;
						bool flag6 = false;
						int num9 = 0;
						if (this.yylval.yyTSourceToken.tokencode >= 301 && this.yylval.yyTSourceToken.tokencode != 329)
						{
							this.yylval.yyTSourceToken.tokencode = 264;
							this.yylval.yyTSourceToken.tokentype = ETokenType.ttidentifier;
							num8 = this.aopContinue;
							num9 = 1;
						}
						else
						{
							num8 = this.aopAbort;
						}
						if (num8 == this.aopAbort)
						{
							flag = true;
						}
						if (!flag)
						{
							if (num8 == this.aopContinue && (this.recovertoken != null || num5 != 0 || (num5 == 0 && this.curtokenpos <= this.yylval.yyTSourceToken.container.size() - 1)))
							{
								this.curtokenpos -= num9;
								if (flag6)
								{
									if (num3 == 1)
									{
										num4 = num7;
										this.yysp--;
									}
									if (num3 == 2)
									{
										goto Block_27;
									}
									num3 = 0;
								}
								num5 = -1;
								num8 = this.aopAbort;
								continue;
							}
							flag = true;
						}
					}
					if (flag)
					{
						flag = false;
						if (this.dbvendor != EDbVendor.dbvmssql)
						{
							goto IL_7FE;
						}
						if (num6 <= 2)
						{
							goto Block_32;
						}
						if (num5 == 0)
						{
							goto Block_53;
						}
						num5 = -1;
						this.stmtendpos = this.curtokenpos - 1;
						this.sourcetokenlist.get(this.curtokenpos - 1).tokenstatus = ETokenStatus.tssynataxerror;
					}
				}
				IL_813:
				if (flag2)
				{
					flag2 = false;
					continue;
				}
				if (flag4)
				{
					flag4 = false;
					num7 = num4;
					num3 = 1;
					yysp = this.yysp;
					yyval = this.yyval;
					if (num6 > 0 && num5 != this._error)
					{
						if (this.dbvendor == EDbVendor.dbvmssql)
						{
							this.nextstmtstartpos = this.curtokenpos - 1;
						}
						num6--;
					}
					num4 = num;
					num5 = -1;
					this.yyval = new TDatabaseYYSType();
					this.yyval.copy(this.yylval);
					if (num2 > 0)
					{
						num2--;
					}
					if (this.dbvendor == EDbVendor.dbvmssql)
					{
						this.stmtendpos = this.curtokenpos - 1;
						this.acceptedtoken = this.currentsourcetoken;
						continue;
					}
					continue;
				}
				else
				{
					if (!flag3)
					{
						continue;
					}
					flag3 = false;
					if (this.dbvendor == EDbVendor.dbvmssql)
					{
						this.currentyystate = num4;
						this.currentyysp = this.yysp;
						this.currentyyn = num;
					}
					this.yyflag = this.yyfnone;
					this.yyval = new TDatabaseYYSType();
					this.yyaction(-num);
					num3 = 2;
					this.yysp -= TParserAccessSql.yyr_len[-num];
					if (this.yygoto(array[this.yysp], TParserAccessSql.yyr_sym[-num], this.retvalue))
					{
						num = this.retvalue[0];
						num4 = num;
					}
					switch (this.yyflag)
					{
					case 1:
						goto IL_978;
					case 2:
						goto IL_9A3;
					case 3:
						goto IL_A0D;
					default:
						continue;
					}
				}
				Block_14:
				flag3 = true;
				goto IL_813;
				Block_27:
				num4 = num7;
				this.yyval = yyval;
				this.yysp = yysp - 1;
				num5 = -1;
				num8 = this.aopAbort;
				num3 = 0;
				flag2 = true;
				goto IL_813;
				IL_39B:
				if (num > 0)
				{
					flag4 = true;
					goto IL_813;
				}
				if (num < 0)
				{
					flag3 = true;
					goto IL_813;
				}
				return 0;
				Block_32:
				num6 = 3;
				int num10;
				if (this.yyact(array[this.yysp], this._error, this.retvalue) && (num = this.retvalue[0]) < 0)
				{
					bool flag7 = false;
					num10 = this.yysp;
					num10 -= TParserAccessSql.yyr_len[-num];
					if (this.yygoto(array[num10], TParserAccessSql.yyr_sym[-num], this.retvalue))
					{
						int num11 = this.retvalue[0];
						if (TParserAccessSql.yyd[num11] != 0)
						{
							flag7 = true;
						}
						else if (num10 == 1)
						{
							flag7 = true;
						}
					}
					if (flag7)
					{
						this.geterrormsg(num4, num5, 10100);
						this.errorstmtstarttoken = this.sourcetokenlist.get(this.curtokenpos - 1);
						this.curtokenpos--;
						num5 = this._error;
						flag3 = true;
						goto IL_813;
					}
				}
				num10 = this.yysp;
				while (this.yysp > 0 && (!this.yyact(array[this.yysp], this._error, this.retvalue) || (num = this.retvalue[0]) <= 0))
				{
					this.yysp--;
				}
				if (num10 != this.yysp)
				{
					this.geterrormsg(num4, num5, 10101);
				}
				if (this.yysp == 0)
				{
					goto Block_42;
				}
				this.errorstmtstarttoken = null;
				if (num10 == this.yysp)
				{
					this.errorstmtstarttoken = this.sourcetokenlist.get(this.curtokenpos - 1);
				}
				if (this.errorstmtstarttoken == null)
				{
					for (int i = this.yysp + 1; i < num10 + 1; i++)
					{
						if (this.yyv[i].yyTSourceToken != null)
						{
							this.errorstmtstarttoken = this.yyv[i].yyTSourceToken;
							break;
						}
					}
				}
				if (this.errorstmtstarttoken == null)
				{
					int num12 = this.yysp;
					while (num12 > 0 && this.yyv[num12].yyTSourceToken == null)
					{
						num12--;
					}
				}
				if (this.errorstmtstarttoken == null)
				{
					int num13 = this.curtokenpos - 1;
					while (num13 >= 0 && this.sourcetokenlist.get(num13).tokenstatus != ETokenStatus.tssynataxerror)
					{
						this.errorstmtstarttoken = this.sourcetokenlist.get(num13);
						num13--;
					}
				}
				if (this.errorstmtstarttoken != null)
				{
					for (int j = this.errorstmtstarttoken.posinlist; j < this.curtokenpos; j++)
					{
						if (this.sourcetokenlist.get(j).tokenstatus != ETokenStatus.tssynataxerror)
						{
							this.errorstmtstarttoken = this.sourcetokenlist.get(j);
							break;
						}
					}
				}
				if (this.errorstmtstarttoken != null)
				{
					for (int k = this.errorstmtstarttoken.posinlist; k < this.curtokenpos; k++)
					{
						this.sourcetokenlist.get(k).tokenstatus = ETokenStatus.tssynataxerror;
					}
				}
				num4 = num;
				num5 = -1;
				this.stmtendpos = this.curtokenpos - 1;
				flag2 = true;
				goto IL_813;
			}
			this.onparseerrorhandle(EErrorType.spfatalerror, "yyparse stack overflow error 1010", this.currentsourcetoken.astext, this.currentsourcetoken.lineNo, this.currentsourcetoken.columnNo, 10010);
			if (this.dbvendor == EDbVendor.dbvmssql)
			{
				this.onparseerrorhandle(EErrorType.spfatalabort, "abort !!! error 1001", this.currentsourcetoken.astext, this.currentsourcetoken.lineNo, this.currentsourcetoken.columnNo, 10011);
			}
			return 10001;
			Block_42:
			this.onparseerrorhandle(EErrorType.spfatalerror, "error recover failed error", this.currentsourcetoken.astext, this.currentsourcetoken.lineNo, this.currentsourcetoken.columnNo, 10012);
			this.onparseerrorhandle(EErrorType.spfatalabort, "abort !!! error 1001", this.currentsourcetoken.astext, this.currentsourcetoken.lineNo, this.currentsourcetoken.columnNo, 10013);
			return 10003;
			Block_53:
			this.errorstmtstarttoken = null;
			try
			{
				for (int l = this.yysp; l > 0; l--)
				{
					if (this.yyv[l].yyTSourceToken != null)
					{
						this.errorstmtstarttoken = this.yyv[l].yyTSourceToken;
					}
				}
			}
			finally
			{
				this.errorstmtstarttoken = null;
			}
			if (this.errorstmtstarttoken == null)
			{
				this.errorstmtstarttoken = this.sourcetokenlist.get(0);
			}
			for (int m = this.errorstmtstarttoken.posinlist; m < this.curtokenpos; m++)
			{
				this.sourcetokenlist.get(m).tokenstatus = ETokenStatus.tssynataxerror;
			}
			this.onparseerrorhandle(EErrorType.spfatalabort, "abort !!! error 1001", this.currentsourcetoken.astext, this.currentsourcetoken.lineNo, this.currentsourcetoken.columnNo, 10013);
			return 10004;
			IL_7FE:
			this.geterrormsg(num4, num5, 10102);
			return 10102;
			IL_978:
			if (this.dbvendor == EDbVendor.dbvmssql && num6 == 3)
			{
				for (int n = this.nextstmtstartpos; n < this.curtokenpos; n++)
				{
				}
			}
			return 0;
			IL_9A3:
			this.onparseerrorhandle(EErrorType.spfatalerror, "yyfabort error 1004", this.currentsourcetoken.astext, this.currentsourcetoken.lineNo, this.currentsourcetoken.columnNo, 10015);
			this.onparseerrorhandle(EErrorType.spfatalabort, "abort !!! error 1001", this.currentsourcetoken.astext, this.currentsourcetoken.lineNo, this.currentsourcetoken.columnNo, 10014);
			return 10006;
			IL_A0D:
			this.onparseerrorhandle(EErrorType.spfatalerror, "error failed error 1000", this.currentsourcetoken.astext, this.currentsourcetoken.lineNo, this.currentsourcetoken.columnNo, 10016);
			return 10007;
		}

		// Token: 0x06000185 RID: 389 RVA: 0x0002D15C File Offset: 0x0002B35C
		internal override bool yygoto(int state, int sym, int[] nstate)
		{
			int num = TParserAccessSql.yygl[state];
			while (num <= TParserAccessSql.yygh[state] && TParserAccessSql.yyg_sym[num] != sym)
			{
				num++;
			}
			bool result;
			if (num > TParserAccessSql.yygh[state])
			{
				result = false;
			}
			else
			{
				nstate[0] = TParserAccessSql.yyg_act[num];
				result = true;
			}
			return result;
		}

		// Token: 0x06000186 RID: 390 RVA: 0x0002D1A8 File Offset: 0x0002B3A8
		internal override bool yyact(int state, int sym, int[] act)
		{
			int num = TParserAccessSql.yyal[state];
			while (num <= TParserAccessSql.yyah[state] && TParserAccessSql.yya_sym[num] != sym)
			{
				num++;
			}
			bool result;
			if (num > TParserAccessSql.yyah[state])
			{
				result = false;
			}
			else
			{
				act[0] = TParserAccessSql.yya_act[num];
				result = true;
			}
			return result;
		}

		// Token: 0x06000187 RID: 391 RVA: 0x0002D1F4 File Offset: 0x0002B3F4
		internal virtual void yyaction_1_206(int yyruleno)
		{
			switch (yyruleno)
			{
			case 1:
				this.yyval.copy(this.yyv[this.yysp - 2]);
				return;
			case 2:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 35:
			case 36:
			case 37:
			case 38:
			case 39:
			case 40:
			case 41:
			case 42:
			case 43:
			case 44:
			case 45:
			case 46:
			case 47:
			case 48:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 61:
			case 62:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 77:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 84:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 94:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 107:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 146:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 159:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 173:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 180:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
				break;
			case 3:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 4:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 5:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 6:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 7:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 8:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 9:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 10:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 11:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 28:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 54:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 78:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 144:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 145:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 147:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 148:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 160:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 193:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 194:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 195:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 196:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 197:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 198:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 199:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 200:
				this.yyval.copy(this.yyv[this.yysp]);
				break;
			default:
				return;
			}
		}

		// Token: 0x06000188 RID: 392 RVA: 0x0002D7D0 File Offset: 0x0002B9D0
		internal virtual void yyaction_207_413(int yyruleno)
		{
			switch (yyruleno)
			{
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 232:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 251:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 288:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 317:
			case 318:
			case 319:
			case 320:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 327:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 347:
			case 348:
			case 349:
			case 350:
			case 351:
			case 360:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 371:
			case 372:
			case 373:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 390:
			case 391:
			case 392:
			case 393:
			case 394:
			case 395:
			case 396:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 411:
				break;
			case 265:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 266:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 267:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 268:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 269:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 270:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 271:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 272:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 273:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 274:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 275:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 276:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 277:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 278:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 279:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 297:
				this.yyval.copy(this.yyv[this.yysp - 2]);
				return;
			case 298:
				this.yyval.copy(this.yyv[this.yysp - 2]);
				return;
			case 316:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 333:
				this.yyval.copy(this.yyv[this.yysp - 2]);
				return;
			case 334:
				this.yyval.copy(this.yyv[this.yysp - 2]);
				return;
			case 346:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 352:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 353:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 354:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 355:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 356:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 357:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 358:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 359:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 361:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 362:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 374:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 389:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 412:
				this.yyval.copy(this.yyv[this.yysp - 2]);
				return;
			case 413:
				this.yyval.copy(this.yyv[this.yysp - 2]);
				break;
			default:
				return;
			}
		}

		// Token: 0x06000189 RID: 393 RVA: 0x0002DE9C File Offset: 0x0002C09C
		internal virtual void yyaction_414_662(int yyruleno)
		{
			switch (yyruleno)
			{
			case 414:
			case 415:
			case 416:
			case 417:
			case 418:
			case 435:
			case 436:
				break;
			case 419:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 420:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 421:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 422:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 423:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 424:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 425:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 426:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 427:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 428:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 429:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 430:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 431:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 432:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 433:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 434:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 437:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 438:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 439:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 440:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 441:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 442:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 443:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 444:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 445:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 446:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 447:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 448:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 449:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 450:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 451:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 452:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 453:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 454:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 455:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 456:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 457:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 458:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 459:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 460:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 461:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 462:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 463:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 464:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 465:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 466:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 467:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 468:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 469:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 470:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 471:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 472:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 473:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 474:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 475:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 476:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 477:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 478:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 479:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 480:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 481:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 482:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 483:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 484:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 485:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 486:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 487:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 488:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 489:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 490:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 491:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 492:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 493:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 494:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 495:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 496:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 497:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 498:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 499:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 500:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 501:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 502:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 503:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 504:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 505:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 506:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 507:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 508:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 509:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 510:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 511:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 512:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 513:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 514:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 515:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 516:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 517:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 518:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 519:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 520:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 521:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 522:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 523:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 524:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 525:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 526:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 527:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 528:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 529:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 530:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 531:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 532:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 533:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 534:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 535:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 536:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 537:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 538:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 539:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 540:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 541:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 542:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 543:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 544:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 545:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 546:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 547:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 548:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 549:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 550:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 551:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 552:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 553:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 554:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 555:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 556:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 557:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 558:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 559:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 560:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 561:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 562:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 563:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 564:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 565:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 566:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 567:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 568:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 569:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 570:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 571:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 572:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 573:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 574:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 575:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 576:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 577:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 578:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 579:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 580:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 581:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 582:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 583:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 584:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 585:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 586:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 587:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 588:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 589:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 590:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 591:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 592:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 593:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 594:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 595:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 596:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 597:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 598:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 599:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 600:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 601:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 602:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 603:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 604:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 605:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 606:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 607:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 608:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 609:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 610:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 611:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 612:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 613:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 614:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 615:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 616:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 617:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 618:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 619:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 620:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 621:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 622:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 623:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 624:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 625:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 626:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 627:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 628:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 629:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 630:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 631:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 632:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 633:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 634:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 635:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 636:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 637:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 638:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 639:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 640:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 641:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 642:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 643:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 644:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 645:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 646:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 647:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 648:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 649:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 650:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 651:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 652:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 653:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 654:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 655:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 656:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 657:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 658:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 659:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 660:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 661:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 662:
				this.yyval.copy(this.yyv[this.yysp]);
				break;
			default:
				return;
			}
		}

		// Token: 0x0600018A RID: 394 RVA: 0x0002FA3C File Offset: 0x0002DC3C
		internal virtual void yyaction_663_843(int yyruleno)
		{
			switch (yyruleno)
			{
			case 663:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 664:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 665:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 666:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 667:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 668:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 669:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 670:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 671:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 672:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 673:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 674:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 675:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 676:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 677:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 678:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 679:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 680:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 681:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 682:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 683:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 684:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 685:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 686:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 687:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 688:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 689:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 690:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 691:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 692:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 693:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 694:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 695:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 696:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 697:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 698:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 699:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 700:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 701:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 702:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 703:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 704:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 705:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 706:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 707:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 708:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 709:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 710:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 711:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 712:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 713:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 714:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 715:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 716:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 717:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 718:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 719:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 720:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 721:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 722:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 723:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 724:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 725:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 726:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 727:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 728:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 729:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 730:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 731:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 732:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 733:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 734:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 735:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 736:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 737:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 738:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 739:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 740:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 741:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 742:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 743:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 744:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 745:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 746:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 747:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 748:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 749:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 750:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 751:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 752:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 753:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 754:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 755:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 756:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 757:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 758:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 759:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 760:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 761:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 762:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 763:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 764:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 765:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 766:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 767:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 768:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 769:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 770:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 771:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 772:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 773:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 774:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 775:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 776:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 777:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 778:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 779:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 780:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 781:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 782:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 783:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 784:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 785:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 786:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 787:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 788:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 789:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 790:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 791:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 792:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 793:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 794:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 795:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 796:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 797:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 798:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 799:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 800:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 801:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 802:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 803:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 804:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 805:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 806:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 807:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 808:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 809:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 810:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 811:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 812:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 813:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 814:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 815:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 816:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 817:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 818:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 819:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 820:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 821:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 822:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 823:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 824:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 825:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 826:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 827:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 828:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 829:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 830:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 831:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 832:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 833:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 834:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 835:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 836:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 837:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 838:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 839:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 840:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 841:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 842:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 843:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			default:
				return;
			}
		}

		// Token: 0x0600018B RID: 395 RVA: 0x00030ED6 File Offset: 0x0002F0D6
		internal override void yyaction(int yyruleno)
		{
			if (yyruleno >= 663)
			{
				this.yyaction_663_843(yyruleno);
				return;
			}
			if (yyruleno >= 414)
			{
				this.yyaction_414_662(yyruleno);
				return;
			}
			if (yyruleno >= 207)
			{
				this.yyaction_207_413(yyruleno);
				return;
			}
			if (yyruleno >= 1)
			{
				this.yyaction_1_206(yyruleno);
			}
		}

		// Token: 0x04000F34 RID: 3892
		internal static int yynacts;

		// Token: 0x04000F35 RID: 3893
		internal static int yyngotos;

		// Token: 0x04000F36 RID: 3894
		internal static int yynstates;

		// Token: 0x04000F37 RID: 3895
		internal static int yynrules;

		// Token: 0x04000F38 RID: 3896
		internal static int[] yya_sym;

		// Token: 0x04000F39 RID: 3897
		internal static int[] yya_act;

		// Token: 0x04000F3A RID: 3898
		internal static int[] yyr_len;

		// Token: 0x04000F3B RID: 3899
		internal static int[] yyr_sym;

		// Token: 0x04000F3C RID: 3900
		internal static int[] yyg_sym;

		// Token: 0x04000F3D RID: 3901
		internal static int[] yyg_act;

		// Token: 0x04000F3E RID: 3902
		internal static int[] yyd;

		// Token: 0x04000F3F RID: 3903
		internal static int[] yyal;

		// Token: 0x04000F40 RID: 3904
		internal static int[] yyah;

		// Token: 0x04000F41 RID: 3905
		internal static int[] yygl;

		// Token: 0x04000F42 RID: 3906
		internal static int[] yygh;

		// Token: 0x04000F43 RID: 3907
		internal static string table_file = "/SharpSqlAnalyzer/parser/access/access_yacc_table.txt";
	}
}
